package avicit.cbb.techclass.billdefine.action.service;

import java.util.List;
import java.util.Map;

/**
 * <p>金航数码科技有限责任公司</p>
 * <p>作者：钟一华</p>
 * <p>邮箱：zhongyih@avicit.com</p>
 * <p>创建时间： 2016-04-12 上午11:52:26 </p>
 * <p>类说明：动态字段添加,编辑,详细,查询数据获取实现类</p>
 * <p>修改记录： </p>
 */
public interface BillDefineDynamicService {
	/**
	 * 获取动态ADD页面HTML
	 * @param formShowList 动态字段数据集合
	 * @param mapCode 通用代码字符串
	 * @param param {
	 * 			MODEL_CODE: 模块CODE,
	 * 			FORM_CODE: 表单CODE,
	 * 			MODEL_COLUMN: 模板显示列数,
	 * 			COL_SPAN: 对应字段跨列数组,
	 * 			ROW_SPAN: 对应字段跨行数组
	 * 		}
	 * @return
	 * @throws Exception
	 */
	public String getDynamicAddHtml(List<Map<String, Object>> formShowList, Map<String, Map<String, String>> mapCode, Map<String, Object> param) throws Exception;
	
	/**
	 * 获取动态EDIT页面HTML
	 * @param formShowList 动态字段数据集合
	 * @param mapCode 通用代码字符串
	 * @param param {
	 * 			MODEL_CODE: 模块CODE,
	 * 			FORM_CODE: 表单CODE,
	 * 			MODEL_COLUMN: 模板显示列数,
	 * 			COL_SPAN: 对应字段跨列数组,
	 * 			ROW_SPAN: 对应字段跨行数组
	 * 		}
	 * @return
	 * @throws Exception
	 */
	public String getDynamicEditHtml(List<Map<String, Object>> formShowList, Map<String, Map<String, String>> mapCode, Map<String, Object> param) throws Exception;
	
	/**
	 * 获取动态DETAIL页面HTML
	 * @param formShowList 动态字段数据集合
	 * @param mapCode 通用代码字符串
	 * @param param {
	 * 			MODEL_CODE: 模块CODE,
	 * 			FORM_CODE: 表单CODE,
	 * 			MODEL_COLUMN: 模板显示列数,
	 * 			COL_SPAN: 对应字段跨列数组,
	 * 			ROW_SPAN: 对应字段跨行数组
	 * 		}
	 * @return
	 * @throws Exception
	 */
	public String getDynamicDetailHtml(List<Map<String, Object>> formShowList, Map<String, Map<String, String>> mapCode, Map<String, Object> param) throws Exception;
	
	/**
	 * 获取动态SEARCH页面HTML
	 * @param formShowList 动态字段数据集合
	 * @param mapCode 通用代码字符串
	 * @param param {
	 * 			MODEL_CODE: 模块CODE,必填
	 * 			FORM_CODE: 表单CODE,必填
	 * 			ALIAS_NAME: 选人选部门别名,可为空
	 * 			MODEL_COLUMN: 模板显示列数,可为空
	 * 			COL_SPAN: 对应字段跨列数组,可为空
	 * 			ROW_SPAN: 对应字段跨行数组,可为空
	 * 			PUBLIC_FLAG: 是否为公共字段表单(Y:是, N:否)
	 * 		}
	 * @return
	 * @throws Exception
	 */
	public String getDynamicSearchHtml(List<Map<String, Object>> formShowList, Map<String, Map<String, String>> mapCode, Map<String, Object> param) throws Exception;
	
	/**
	 * 获取datagrid的html
	 * @author zhangj
	 * @param param {
	 *     datagridId:datagrid的ID,必填
	 *     datagridUrl:datagrid请求数据的url,可为空
	 *     datagridToolbarId:datagrid的工具条ID,必填
	 *     datagridParam:datagrid的属性，事件,可为空
	 *     domainObjectParam: 包名_jsp页面名，必填
	 * }
	 * @return
	 * @throws Exception
	 */
	public String getDatagridHtml(Map<String, Object> param) throws Exception;
	
	/**
	 * 获取动态DETAIL页面HTML
	 * @param formShowList 动态字段数据集合
	 * @param mapCode 通用代码字符串
	 * @param param {
	 * 			MODEL_CODE: 模块CODE,
	 * 			FORM_CODE: 表单CODE,
	 * 			MODEL_COLUMN: 模板显示列数,
	 * 			COL_SPAN: 对应字段跨列数组,
	 * 			ROW_SPAN: 对应字段跨行数组
	 * 		}
	 * @return
	 * @throws Exception
	 */
	public String getDynamicDetailHtmlByInput(List<Map<String, Object>> formShowList, Map<String, Map<String, String>> mapCode, Map<String, Object> param) throws Exception;
	
	/**
	 * 通过配置文件获取附件相应字段
	 * @return
	 * @throws Exception List<Map<String,Object>>
	 * @throws
	 */
	public List<Map<String, Object>> getAttachmentClassMapByProperties() throws Exception;
}
